package com.songlanyun.modules.gains.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;

import com.songlanyun.common.drive.RootEntity;
import com.songlanyun.common.enums.ShopGainsConstant;
import com.songlanyun.common.utils.custom.DateCustomUtils;
import lombok.Data;

/**
 * @author lubo
 * @email sunlightcs@gmail.com
 * @date 2020-12-03 11:03:16
 */
@Data
@TableName("yxt_shop_gains_bill")
public class ShopGainsBill extends RootEntity<Long, ShopGainsBill> implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId
    private Long id;
    /**
     * 商家id
     */
    private Long shopId;

    /**
     * 单号
     */
    private String code;


    /**
     * 所得帐单描述
     */
    private String remark;
    /**
     * 账单类型（0，支出（提现），1收入（结算所得））
     */
    private ShopGainsConstant.BillType billType;
    /**
     * 收入模式：0、非收入，1、销售商品，2、销售服务，3、运费所得
     */
    private ShopGainsConstant.InnerMode innerMode;
    /**
     * 支出模式：（0，非支出，1提现）
     */
    private ShopGainsConstant.OuterMode outerMode;

    @TableField(exist = false)
    private String mode;

    public String getMode() {
        if (ShopGainsConstant.BillType.EXPENDITURE.equals(billType)) {
            return outerMode.getMsg();
        } else {
            return innerMode.getMsg();
        }
    }

    /**
     * 入帐前
     */
    private BigDecimal entryBefore;
    /**
     * 入帐后
     */
    private BigDecimal entryAfter;
    /**
     * 入帐的额度
     */
    private BigDecimal entryValue;
    /**
     * 入账时间
     */
    private Long createTimeMillis;

    @TableField(exist = false)
    private String formatCreateTimeMillis;

    /**
     * 入账时间
     */
    public String getFormatCreateTimeMillis() {
        return DateCustomUtils.formatToDateTimeString(createTimeMillis);
    }

    @Override
    public Long getIdentity() {
        return getId();
    }


}
